/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package cliente.negocio;

import cliente.comunicacion.Proxy;
import cliente.presentacion.nuevo.JF_Administrador;
import cliente.presentacion.nuevo.iventanaAdministrador;
/**
 *
 * @author tpaxle
 */
public class Controlador_Administrador implements iControladorCitador{
    private Administrador_Cliente admin_Control;
    private Controlador_Gestion_Beneficiario C_bene= null;
    private Controlador_Gestion_Usuarios C_gesusu= null;
    private long idSesion;
    private iControlador_Administrador controladoractual;
    private iventanaAdministrador ventanaadmin;

    public Controlador_Administrador(long idSesion, Administrador_Cliente admin_Control){
        this.idSesion= idSesion;
        this.admin_Control= admin_Control;
        //Mosstrar ventana de eleccion
        ventanaadmin= new JF_Administrador(this);

        ventanaadmin.mostrar(true);
  //      controladoractual= new Controlador_Gestion_Usuarios(this);
//        controladoractual= new Controlador_Gestion_Beneficiario(this);
        //C_gesusu= new Controlador_Gestion_Usuarios(this);
        //C_bene= new Controlador_Gestion_Beneficiario(this);
    }

    public Controlador_Gestion_Usuarios getC_gesusu() {
        return C_gesusu;
    }

    public long getIdSesion() {
        return idSesion;
    }

    public Administrador_Cliente getAdmin_Control() {
        return admin_Control;
    }

    public void notificar(int noperacion, Object d) {
        controladoractual.notificar(noperacion, d);
    }

    public Controlador_Gestion_Beneficiario getC_gbenefic() {
        return C_bene;
    }

    public iControlador_Administrador getControladoractual() {
        return controladoractual;
    }

    /*Recibe la ventana que se quiere abrir*/
    public void clickcmbio(int opcion) {
        ventanaadmin.mostrar(false);
        switch(opcion){
            case 1:
                controladoractual= new Controlador_Gestion_Usuarios(this);
                break;
            case 2:
                controladoractual= new Controlador_Gestion_Beneficiario(this);
                break;
            case 3:
                controladoractual= new Controlador_Gestion_Cistas(this);
                break;
            case 4:
                controladoractual= new Controlador_Gestion_Horario(this);
        }
    }
    //El controlador determinado indica que se ha cerrado la pantalla
    public void cerrar() {
        ventanaadmin.mostrar(true);
    }
    public void pedirhorario(String nif) {
        throw new UnsupportedOperationException("Not yet implemented");
    }

    public void logout() {
        //Se desconecta
         Proxy.getProxy().liberar(idSesion);
         admin_Control.cerrar();
    }
}
